其他
科普 | 极简椭圆曲线密码学入门
本文旨在简单介绍椭圆曲线密码学(elliptic curve cryptography)。本文预设读者的阅读目的是想知道为什么 ECC 是一个有效的密码学工具及其基本原理。我的目标是给出广义的解释,我将省略一些证明和实现细节,聚焦于抽象的原理。
- 椭圆曲线示例 -
ECC 有什么用途?
ECC 是一种加密数据的方法,只有特定的人才能对其进行解密。在现实生活中,ECC 有一些常见的用例,但是最主要的用途是加密互联网数据和流量。例如,ECC 可以用来确保在发送电子邮件时,除收件人以外没人可以阅读邮件内容。
ECC 是一种公钥密码学
公钥密码学的类型有很多,ECC 只是其中一种。此外还有 RSA、Diffie-Helman 等算法。首先,我要简单介绍一下公钥密码学的背景,然后再讨论 ECC 以及这些概念基础上的高层建筑。请各位读者在有空时深入学习一下关于公钥密码学的知识。
公钥密码学的运作方式如下图所示:
上图显示了两个密钥:公钥和私钥。这两个密钥分别用来加密和解密数据。这样一来,加密数据在传输的过程中,全世界的人都可以看到(密文),却无法知道其内容。
假设 Facebook 将要收到来自特朗普的私信。Facebook 需要确保特朗普在通过互联网发送私信时,没有中间方(国家安全局、互联网服务提供商)能够读取该私信。在使用公钥密码学的情况下,整个过程如下:
特朗普通知 Facebook 说他想发送一封私信给 Facebook Facebook 将自己的公钥发送给了特朗普 特朗普使用该公钥加密了私信:“I love Fox and Friends” + Public Key = “s80s1s9sadjds9s” 特朗普将加密后的私信发送给 Facebook Facebook 使用私钥解密该私信 “s80s1s9sadjds9s” + Private Key = “I love Fox and Friends”
公钥可以发送给任何人,它是公开的。 必须保护好私钥。如果中间方获得私钥,他们就能解密私信。 计算机可以使用公钥快速加密消息,使用私钥快速解密消息。 如果没有私钥,计算机需要很长一段时间(数百万年)才能暴力破解加密消息。
公钥密码学原理:陷门函数
椭圆曲线密码学有什么不同?
ECC 的陷门函数
从 A 点开始: A dot B = -C(从 A 点至 B 点画一条直线,与曲线相交于 -C 点) -C 点经过 X 轴反射到曲线上的 C 点 A dot C = -D (从 A 点至 C 点画一条直线,与曲线相交于 -D 点) -D 点经过 X 轴反射到曲线上的 D 点 A dot D = -E (在 A 点至 D 点画一条直线,与曲线相交于 -E 点) -E 点经过 X 轴反射到曲线上的 E 点
几点疑问
如何找到第二个点?如果点函数主要依靠在两个点之间画一条直线,我们不需要知道第二个点在哪里(就能开始计算)吗?
如果点函数产生的直线与曲线的交点距离原点太远,那该怎么办?
我发现了一个陷门函数,如何创建公钥和私钥?如何用它们来加密数据?
(完)
(文内有许多超链接,可点击左下 ”阅读原文“ 从 EthFans 网站上获取)
原文链接:
https://blog.goodaudience.com/very-basic-elliptic-curve-cryptography-16c4f6c349ed
作者: Lane Wagner
你可能还喜欢: